package persistencia;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import util.Conexion;
import bean.Cilindrada;


public class CilindradaDAO {
	
	public List<Cilindrada> listar() throws SQLException{
		List<Cilindrada> listado = new ArrayList<Cilindrada>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT id,cilindrada,buscar_cilindrada,situacion,orden " +
				"FROM tbl_cilindrada");
		ResultSet rs = pstm.executeQuery();
		while(rs.next()){
			Cilindrada cilindrada = new Cilindrada();
			cilindrada.setId(rs.getInt("id"));
			cilindrada.setCilindrada(rs.getString("cilindrada"));
			cilindrada.setBuscar_cilindrada(rs.getString("buscar_cilindrada"));
			cilindrada.setOrden(rs.getInt("orden"));
			cilindrada.setSituacion(rs.getString("situacion"));
			listado.add(cilindrada);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Cilindrada> buscarPorCilindrada(String filtro,String situacion) throws SQLException{
		List<Cilindrada> listado = new ArrayList<Cilindrada>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT cilindrada,buscar_cilindrada,situacion,id,orden " +
				"FROM tbl_cilindrada WHERE situacion in ("+situacion+") and cilindrada like ?");
		pstm.setString(1, filtro + "%");
		ResultSet rs = pstm.executeQuery();
		while(rs.next()){
			Cilindrada cilindrada = new Cilindrada();
			cilindrada.setId(rs.getInt("id"));
			cilindrada.setCilindrada(rs.getString("cilindrada"));
			cilindrada.setBuscar_cilindrada(rs.getString("buscar_cilindrada"));
			cilindrada.setOrden(rs.getInt("orden"));
			cilindrada.setSituacion(rs.getString("situacion"));
			listado.add(cilindrada);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Cilindrada> buscarAlias(String filtro,String situacion) throws SQLException{
		List<Cilindrada> listado = new ArrayList<Cilindrada>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT cilindrada,buscar_cilindrada,situacion,id,orden " +
				"FROM tbl_cilindrada WHERE situacion in ("+situacion+") and buscar_cilindrada like ?");
		pstm.setString(1, filtro + "%");	
		ResultSet rs = pstm.executeQuery();
		while (rs.next()) {
			Cilindrada cilindrada = new Cilindrada();
			cilindrada.setId(rs.getInt("id"));
			cilindrada.setCilindrada(rs.getString("cilindrada"));
			cilindrada.setBuscar_cilindrada(rs.getString("buscar_cilindrada"));
			cilindrada.setOrden(rs.getInt("orden"));
			cilindrada.setSituacion(rs.getString("situacion"));
			listado.add(cilindrada);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Cilindrada> buscarAlias(String filtro) throws SQLException{
		List<Cilindrada> listado = new ArrayList<Cilindrada>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT cilindrada,buscar_cilindrada,situacion,id,orden " +
				"FROM tbl_cilindrada WHERE buscar_cilindrada = ?");
		pstm.setString(1, filtro);	
		ResultSet rs = pstm.executeQuery();
		while (rs.next()) {
			Cilindrada cilindrada = new Cilindrada();
			cilindrada.setId(rs.getInt("id"));
			cilindrada.setCilindrada(rs.getString("cilindrada"));
			cilindrada.setBuscar_cilindrada(rs.getString("buscar_cilindrada"));
			cilindrada.setOrden(rs.getInt("orden"));
			cilindrada.setSituacion(rs.getString("situacion"));
			listado.add(cilindrada);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public List<Cilindrada> buscarPorOrden(int filtro,String situacion) throws SQLException{
		List<Cilindrada> listado = new ArrayList<Cilindrada>();
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
				"SELECT cilindrada,buscar_cilindrada,situacion,id,orden " +
				"FROM tbl_cilindrada WHERE situacion in ("+situacion+") and orden=?");
		pstm.setInt(1, filtro);
		ResultSet rs = pstm.executeQuery();
		while(rs.next()){
			Cilindrada cilindrada = new Cilindrada();
			cilindrada.setId(rs.getInt("id"));
			cilindrada.setCilindrada(rs.getString("cilindrada"));
			cilindrada.setBuscar_cilindrada(rs.getString("buscar_cilindrada"));
			cilindrada.setOrden(rs.getInt("orden"));
			cilindrada.setSituacion(rs.getString("situacion"));
			listado.add(cilindrada);
		}
		rs.close();
		pstm.close();
		return listado;
	}
	
	public int insertar(Cilindrada cilindrada) throws SQLException{
		
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
		"insert into tbl_cilindrada (cilindrada,buscar_cilindrada,situacion,orden,usuario_creacion,fecha_creacion) values (?,?,?,?,?,?)");
		pstm.setString(1, cilindrada.getCilindrada());
		pstm.setString(2, cilindrada.getBuscar_cilindrada());
		pstm.setString(3, cilindrada.getSituacion());
		pstm.setInt(4, cilindrada.getOrden());
		pstm.setString(5, cilindrada.getUsuario_creacion());
		pstm.setInt(6, cilindrada.getFecha_creacion());
		int resultado = pstm.executeUpdate();
		pstm.close();
		return resultado;
	}
	
	public int actualizar(Cilindrada cilindrada) throws SQLException{
		PreparedStatement pstm = Conexion.obtenerConexionMSQL().prepareStatement(
		"update tbl_cilindrada set cilindrada=?,buscar_cilindrada=?,situacion=?,orden=?,usuario_modificacion=?,fecha_modificacion=? where id=?");
		pstm.setString(1, cilindrada.getCilindrada());
		pstm.setString(2, cilindrada.getBuscar_cilindrada());
		pstm.setString(3, cilindrada.getSituacion());
		pstm.setInt(4, cilindrada.getOrden());
		pstm.setString(5, cilindrada.getUsuario_modificacion());
		pstm.setInt(6, cilindrada.getFecha_modificacion());
		pstm.setInt(7, cilindrada.getId());
		int resultado = pstm.executeUpdate();
		pstm.close();
		return resultado;
	}
	
}
